/** @jsxImportSource @emotion/react */
import * as React from "react";
import {
   CCell, Table, TableBody, TableRow, Text, Cell, TableHead,
} from "customize-easy-ui-component";
import { DirectLink, } from "../../../routing/Link";
import {CCellUnit, } from "../../common/base";
import {useJudgmentTable} from "../../hook/useJudgment";
import {检验设备结论Observ} from "../../amusement/viewRes";
import {config路线坡度} from "./orcBase";


/**正式报告用的
 * */
export const 报告设备详情= ( {theme, orc, rep } : { orc: any,rep:any, theme:any}
) => {
  // const instrumentTable =React.useMemo(() => getInstrument2xCol(orc.仪器表), [orc.仪器表]);
  return <React.Fragment>
    <Table id={'Survey'} fixed={ ["6%","10%","35%","18%","%"] }  css={ {borderCollapse: 'collapse' } }  tight  miniw={800}>
      <TableBody>
        <DirectLink href={`/report/${rep?.modeltype}/ver/${rep?.modelversion}/${rep?.id}/Survey#Survey`}>
          <TableRow>
            <CCell colSpan={2}>使用单位名称</CCell>
            <CCell colSpan={3}>{orc.使用单位 || '／'}</CCell>
          </TableRow>
          <TableRow>
            <CCell colSpan={2}>使用单位地址</CCell>
            <CCell colSpan={3}>{orc.使用单位地址 || '／'}</CCell>
          </TableRow>
          <TableRow>
            <CCell colSpan={2}>联系人</CCell><CCell>{orc.单位联系人 || '／'}</CCell>
            <CCell>联系电话</CCell><CCell>{orc.使用单位电话 || '／'}</CCell>
          </TableRow>
          <TableRow>
            <CCell colSpan={2}>联系电话</CCell><CCell>{orc.使用单位电话 || '／'}</CCell>
            <CCell>邮政编码</CCell><CCell>{orc.使用单位邮编 || '／'}</CCell>
          </TableRow>
          <TableRow>
            <CCell colSpan={2}>统一社会信用代码</CCell><CCell>{orc.使用单位信用码 || '／'}</CCell>
            <CCell>使用登记证编号</CCell><CCell>{orc.使用证号 || '／'}</CCell>
          </TableRow>
          <TableRow>
            <CCell colSpan={2}>制造单位名称</CCell>
            <CCell colSpan={3}>{orc.制造单位 || '／'}</CCell>
          </TableRow>
          <TableRow>
            <CCell colSpan={2}>改造单位名称</CCell>
            <CCell colSpan={3}>{orc.改造单位 || '／'}</CCell>
          </TableRow>
          <TableRow>
            <CCell colSpan={2}>产品名称</CCell><CCell>{orc.设备名称 || '／'}</CCell>
            <CCell>设备代码</CCell><CCell>{orc.设备代码 || '／'}</CCell>
          </TableRow>
          <TableRow>
            <CCell colSpan={2}>产品型号</CCell><CCell>{orc.型号 || '／'}</CCell>
            <CCell>产品编号</CCell><CCell>{orc.出厂编号 || '／'}</CCell>
          </TableRow>
          <TableRow>
            <CCell colSpan={2}>车架编号</CCell><CCell>{orc.底盘编号 || '／'}</CCell>
            <CCell>发动机（行走电机）编号</CCell><CCell>{orc.发动机号 || '／'}</CCell>
          </TableRow>
          <TableRow>
            <CCell colSpan={2}>额定载客人数</CCell><CCellUnit unit={'人'}>{orc.载客人数 || '／'}</CCellUnit>
            <CCell>最大运行速度</CCell><CCellUnit unit={'km/h'}>{orc.最大行驶速度 || '／'}</CCellUnit>
          </TableRow>
          <TableRow>
            <CCell colSpan={2}>最大行驶坡度</CCell><CCellUnit unit={'%'}>{orc.最大行驶坡度 || '／'}</CCellUnit>
            <CCell>动力方式</CCell><CCell>{orc.动力方式 || '／'}</CCell>
          </TableRow>
          <TableRow>
            <CCell colSpan={2}>传动方式</CCell><CCell>{orc.传动方式 || '／'}</CCell>
            <CCell>整机整备质量</CCell><CCellUnit unit={'kg'}>{orc.自重量 || '／'}</CCellUnit>
          </TableRow>
          <TableRow>
            <CCell colSpan={2}>轴距</CCell><CCellUnit unit={'mm'}>{orc.轴距 || '／'}</CCellUnit>
            <CCell>观光列车车厢数</CCell><CCellUnit unit={'节'}>{orc.车厢数 || '／'}</CCellUnit>
          </TableRow>
        </DirectLink>
      </TableBody>
    </Table>
    <Table fixed={ ["4.5%","11.5%","35%","23%","%"]  }  css={ {borderCollapse: 'collapse' } }  tight  miniw={800}>
      <TableBody>
        <TableRow >
          <CCell rowSpan={2}>轮距</CCell>
          <CCell>前</CCell>
          <CCellUnit unit={'mm'}>{orc.前轮轮距 || '／'}</CCellUnit>
          <CCell>观光列车每节车厢座位数</CCell>
          <CCellUnit unit={'个'}>{orc.车厢座位数 || '／'}</CCellUnit>
        </TableRow>
        <TableRow>
          <CCell>后</CCell>
          <CCellUnit unit={'mm'}>{orc.后轮轮距 || '／'}</CCellUnit>
          <CCell>观光列车牵引车头座位数</CCell>
          <CCellUnit unit={'个'}>{orc.车头座位数 || '／'}</CCellUnit>
        </TableRow>
        <TableRow>
          <CCell colSpan={2}>检验依据</CCell><Cell colSpan={3}>
          《场（厂）内专用机动车辆安全技术规程》（TSG 81-2022）
          </Cell>
        </TableRow>

        <DirectLink href={`/report/${rep?.modeltype}/ver/${rep?.modelversion}/${rep?.id}/Conclusion#Conclusion`}>
          <TableRow>
            <CCell>检验结论</CCell><CCell colSpan={4}><Text variant="h1" css={{fontSize:'4rem'}}>{orc?.检验结论}</Text></CCell>
          </TableRow>
        </DirectLink>
        <DirectLink href={`/report/${rep?.modeltype}/ver/${rep?.modelversion}/${rep?.id}/Witness#Witness`}>
          <TableRow>
            <CCell>备注</CCell>
            <Cell split={true} colSpan={4}><div css={{minHeight: '1rem', whiteSpace: 'pre-wrap'}}>
              {orc.大备注 || '／'}
            </div></Cell>
          </TableRow>
        </DirectLink>
      </TableBody>
    </Table>

    {检验设备结论Observ({theme, orc,rep,label3:'批准'})}
  </React.Fragment>;
};

//【耦合点】 config路线坡度 ，提取config配置的Node
const cfgTs=config路线坡度[0][0]?.t;
const inPreN_A1=<>
    <CCell split rowSpan={7}>{cfgTs?.[0]}</CCell><CCell split rowSpan={7}>{cfgTs?.[1]}</CCell><CCell split rowSpan={7}>{cfgTs?.[2]}</CCell>
</>;
/**【罕见布局】 附录A1: 行驶路线坡度检测
 * @property config : 配置 测量数据
 * @property nseq : 有无序号列, 默认有的
 * @property crit : 真的有“判断标准”这个列的， 默认没有；
 * 【极其特殊】 中间一行 “b.连续20m路段坡度(用水平仪测量时填写在下列表格中）” 导致的混乱！ 需特殊化处理！
 * 肢解 分2区域 组装； 前面的3栏目也拆解掉=》inPreN。@ inPreN用处实际是替代原本的第一行前缀区域栏目都被替换位置；
 * */
export const 测量判定结果A1= ({ orc, rep,label,config,children,fixed=["4%","3%","%","19%","4%","10%","8%","5%"],tag='Measure',nseq,crit} :
                                { orc: any, rep: any,label:string,config:any,children?:any,fixed?:string[],tag?:string,nseq?:boolean,crit?:boolean}
) => {
  const [line1, ...otherLines]=useJudgmentTable({rep,orc, config,nseq,
      inPreN: inPreN_A1,
    });
  return <>
    <Text variant="h4" css={{marginTop: '1rem', "@media print": {paddingBottom: '9.5rem', pageBreakInside: 'avoid'}
    }}>{label}</Text>
    <Table id={tag} fixed={ fixed } tight  miniw={800} css={ {borderCollapse: 'collapse', "@media print": {marginTop: '-9.5rem'}} } >
      <TableHead>
        <TableRow>
          {!nseq &&<CCell><Text css={{fontSize:'0.8rem'}}>序号</Text></CCell>}
          <CCell colSpan={2}><Text css={{fontSize:'0.7rem'}}>项目编号</Text></CCell><CCell>判断标准</CCell>
          <CCell>测量内容</CCell><CCell>单位</CCell>
          {crit && <CCell>判断标准</CCell>}
          <CCell>观测数据</CCell><CCell>测量结果</CCell><CCell><Text css={{fontSize:'0.8rem'}}>检验结果</Text></CCell>
        </TableRow>
      </TableHead>
      <TableBody>
        <DirectLink  href={`/report/${rep?.modeltype}/ver/${rep?.modelversion}/${rep?.id}/${tag}?original=1#${tag}`}>
          {line1}
          <TableRow><CCell colSpan={5}>b.连续20m路段坡度(用水平仪测量时填写在下列表格中）</CCell></TableRow>
          {otherLines}
        </DirectLink>
      </TableBody>
    </Table>
  </>;
};

/**表头：标题的名称都不一样了：
 * @property config : 配置 测量数据
 * @property crit : 真的有“判断标准”这个列的， 默认没有；
 * */
export const 测量表判定Tour= ({ orc, rep,label,config,children,fixed=["4%","3%","%","13%","21%","5.5%","12%","10%","8%"],tag='Measure',nseq,crit} :
                                { orc: any, rep: any,label:string,config:any,children?:any,fixed?:string[],tag?:string,nseq?:boolean,crit?:boolean}
) => {
  const renderMeasure=useJudgmentTable({rep,orc, config,nseq});
  return <>
    <Text variant="h4" css={{marginTop: '1rem', "@media print": {paddingBottom: '5rem', pageBreakInside: 'avoid'}
    }}>{label}</Text>
    <Table id={tag} fixed={ fixed } tight  miniw={800} css={ {borderCollapse: 'collapse', "@media print": {marginTop: '-5rem'}} } >
      <TableHead>
        <TableRow>
          {!nseq &&<CCell><Text css={{fontSize:'0.8rem'}}>序号</Text></CCell>}
          <CCell colSpan={2}><Text css={{fontSize:'0.7rem'}}>项目编号</Text></CCell>
          <CCell colSpan={2}>判断标准</CCell><CCell>测量内容</CCell>
          <CCell>单位</CCell>
          {crit && <CCell>判断标准</CCell>}
          <CCell>观测数据</CCell><CCell>测量结果</CCell><CCell><Text css={{fontSize:'0.8rem'}}>检验结果</Text></CCell>
        </TableRow>
      </TableHead>
      <TableBody>
        <DirectLink  href={`/report/${rep?.modeltype}/ver/${rep?.modelversion}/${rep?.id}/${tag}?original=1#${tag}`}>
          {renderMeasure}
        </DirectLink>
      </TableBody>
    </Table>
  </>;
};
